Micron Document
🎖️GitЯра🎖️


Displaying Raw • Download

core/database/src/commonMain/kotlin/org/meshtastic/core/database/Converters.kt d5848ad5e02bd9b5b1726bedfa51ceb0faaa0240 (d5848ad5) Text, 5.48 KB

T8b949e/*
* Copyright (c) 2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787org.meshtastic.core.database

Tff7b72import T7ee787androidx.room3.ColumnTypeConverter
Tff7b72import T7ee787co.touchlab.kermit.Logger
Tff7b72import T7ee787kotlinx.serialization.ExperimentalSerializationApi
Tff7b72import T7ee787kotlinx.serialization.json.Json
Tff7b72import T7ee787okio.ByteString
Tff7b72import T7ee787okio.ByteString.Companion.toByteString
Tff7b72import T7ee787org.meshtastic.core.model.DataPacket
Tff7b72import T7ee787org.meshtastic.core.model.MessageStatus
Tff7b72import T7ee787org.meshtastic.core.model.util.decodeOrNull
Tff7b72import T7ee787org.meshtastic.proto.ChannelSet
Tff7b72import T7ee787org.meshtastic.proto.ChannelSettings
Tff7b72import T7ee787org.meshtastic.proto.Config
Tff7b72import T7ee787org.meshtastic.proto.DeviceMetadata
Tff7b72import T7ee787org.meshtastic.proto.FromRadio
Tff7b72import T7ee787org.meshtastic.proto.Paxcount
Tff7b72import T7ee787org.meshtastic.proto.Position
Tff7b72import T7ee787org.meshtastic.proto.Telemetry
Tff7b72import T7ee787org.meshtastic.proto.User

Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffTooManyFunctionsTa5d6ff"Tb4b4b4)
Tff7b72class T56d364Converters Tb4b4b4{
Tf0883e@OptInTb4b4b4(Te6edf3ExperimentalSerializationApiTff7b72::Te6edf3classTb4b4b4)
Tff7b72private Tff7b72val Te6edf3json Tff7b72= Te6edf3Json Tb4b4b4{
Te6edf3isLenient Tff7b72= Tff7b72true
Te6edf3ignoreUnknownKeys Tff7b72= Tff7b72true
Te6edf3encodeDefaults Tff7b72= Tff7b72true
Te6edf3exceptionsWithDebugInfo Tff7b72= Tff7b72false
Tb4b4b4}

Tf0883e@ColumnTypeConverter
Tff7b72fun Td2a8ffdataFromStringTb4b4b4(Te6edf3valueTb4b4b4: Tffa657StringTb4b4b4)Tb4b4b4: Te6edf3DataPacket Tff7b72= Te6edf3jsonTb4b4b4.Te6edf3decodeFromStringTb4b4b4(Te6edf3DataPacketTb4b4b4.Te6edf3serializerTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3valueTb4b4b4)

Tf0883e@ColumnTypeConverter
Tff7b72fun Td2a8ffdataToStringTb4b4b4(Te6edf3valueTb4b4b4: Te6edf3DataPacketTb4b4b4)Tb4b4b4: Tffa657String Tff7b72= Te6edf3jsonTb4b4b4.Te6edf3encodeToStringTb4b4b4(Te6edf3DataPacketTb4b4b4.Te6edf3serializerTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3valueTb4b4b4)

Tf0883e@ColumnTypeConverter
Tff7b72fun Td2a8ffbytesToFromRadioTb4b4b4(Te6edf3bytesTb4b4b4: Te6edf3ByteArrayTb4b4b4)Tb4b4b4: Te6edf3FromRadio Tff7b72= Te6edf3FromRadioTb4b4b4.Te6edf3ADAPTERTb4b4b4.Te6edf3decodeOrNullTb4b4b4(Te6edf3bytesTb4b4b4, Te6edf3LoggerTb4b4b4) Tff7b72?: Te6edf3FromRadioTb4b4b4(Tb4b4b4)

Tf0883e@ColumnTypeConverter Tff7b72fun Td2a8fffromRadioToBytesTb4b4b4(Te6edf3valueTb4b4b4: Te6edf3FromRadioTb4b4b4)Tb4b4b4: Te6edf3ByteArray Tff7b72= Te6edf3FromRadioTb4b4b4.Te6edf3ADAPTERTb4b4b4.Te6edf3encodeTb4b4b4(Te6edf3valueTb4b4b4)

Tf0883e@ColumnTypeConverter Tff7b72fun Td2a8ffbytesToUserTb4b4b4(Te6edf3bytesTb4b4b4: Te6edf3ByteArrayTb4b4b4)Tb4b4b4: Te6edf3User Tff7b72= Te6edf3UserTb4b4b4.Te6edf3ADAPTERTb4b4b4.Te6edf3decodeOrNullTb4b4b4(Te6edf3bytesTb4b4b4, Te6edf3LoggerTb4b4b4) Tff7b72?: Te6edf3UserTb4b4b4(Tb4b4b4)

Tf0883e@ColumnTypeConverter Tff7b72fun Td2a8ffuserToBytesTb4b4b4(Te6edf3valueTb4b4b4: Te6edf3UserTb4b4b4)Tb4b4b4: Te6edf3ByteArray Tff7b72= Te6edf3UserTb4b4b4.Te6edf3ADAPTERTb4b4b4.Te6edf3encodeTb4b4b4(Te6edf3valueTb4b4b4)

Tf0883e@ColumnTypeConverter
Tff7b72fun Td2a8ffbytesToPositionTb4b4b4(Te6edf3bytesTb4b4b4: Te6edf3ByteArrayTb4b4b4)Tb4b4b4: Te6edf3Position Tff7b72= Te6edf3PositionTb4b4b4.Te6edf3ADAPTERTb4b4b4.Te6edf3decodeOrNullTb4b4b4(Te6edf3bytesTb4b4b4, Te6edf3LoggerTb4b4b4) Tff7b72?: Te6edf3PositionTb4b4b4(Tb4b4b4)

Tf0883e@ColumnTypeConverter Tff7b72fun Td2a8ffpositionToBytesTb4b4b4(Te6edf3valueTb4b4b4: Te6edf3PositionTb4b4b4)Tb4b4b4: Te6edf3ByteArray Tff7b72= Te6edf3PositionTb4b4b4.Te6edf3ADAPTERTb4b4b4.Te6edf3encodeTb4b4b4(Te6edf3valueTb4b4b4)

Tf0883e@ColumnTypeConverter
Tff7b72fun Td2a8ffbytesToTelemetryTb4b4b4(Te6edf3bytesTb4b4b4: Te6edf3ByteArrayTb4b4b4)Tb4b4b4: Te6edf3Telemetry Tff7b72= Te6edf3TelemetryTb4b4b4.Te6edf3ADAPTERTb4b4b4.Te6edf3decodeOrNullTb4b4b4(Te6edf3bytesTb4b4b4, Te6edf3LoggerTb4b4b4) Tff7b72?: Te6edf3TelemetryTb4b4b4(Tb4b4b4)

Tf0883e@ColumnTypeConverter Tff7b72fun Td2a8fftelemetryToBytesTb4b4b4(Te6edf3valueTb4b4b4: Te6edf3TelemetryTb4b4b4)Tb4b4b4: Te6edf3ByteArray Tff7b72= Te6edf3TelemetryTb4b4b4.Te6edf3ADAPTERTb4b4b4.Te6edf3encodeTb4b4b4(Te6edf3valueTb4b4b4)

Tf0883e@ColumnTypeConverter
Tff7b72fun Td2a8ffbytesToPaxcounterTb4b4b4(Te6edf3bytesTb4b4b4: Te6edf3ByteArrayTb4b4b4)Tb4b4b4: Te6edf3Paxcount Tff7b72= Te6edf3PaxcountTb4b4b4.Te6edf3ADAPTERTb4b4b4.Te6edf3decodeOrNullTb4b4b4(Te6edf3bytesTb4b4b4, Te6edf3LoggerTb4b4b4) Tff7b72?: Te6edf3PaxcountTb4b4b4(Tb4b4b4)

Tf0883e@ColumnTypeConverter Tff7b72fun Td2a8ffpaxCounterToBytesTb4b4b4(Te6edf3valueTb4b4b4: Te6edf3PaxcountTb4b4b4)Tb4b4b4: Te6edf3ByteArray Tff7b72= Te6edf3PaxcountTb4b4b4.Te6edf3ADAPTERTb4b4b4.Te6edf3encodeTb4b4b4(Te6edf3valueTb4b4b4)

Tf0883e@ColumnTypeConverter
Tff7b72fun Td2a8ffbytesToMetadataTb4b4b4(Te6edf3bytesTb4b4b4: Te6edf3ByteArrayTb4b4b4)Tb4b4b4: Te6edf3DeviceMetadata Tff7b72=
Te6edf3DeviceMetadataTb4b4b4.Te6edf3ADAPTERTb4b4b4.Te6edf3decodeOrNullTb4b4b4(Te6edf3bytesTb4b4b4, Te6edf3LoggerTb4b4b4) Tff7b72?: Te6edf3DeviceMetadataTb4b4b4(Tb4b4b4)

Tf0883e@ColumnTypeConverter Tff7b72fun Td2a8ffmetadataToBytesTb4b4b4(Te6edf3valueTb4b4b4: Te6edf3DeviceMetadataTb4b4b4)Tb4b4b4: Te6edf3ByteArray Tff7b72= Te6edf3DeviceMetadataTb4b4b4.Te6edf3ADAPTERTb4b4b4.Te6edf3encodeTb4b4b4(Te6edf3valueTb4b4b4)

Tf0883e@ColumnTypeConverter
Tff7b72fun Td2a8ffbytesToChannelSetTb4b4b4(Te6edf3bytesTb4b4b4: Te6edf3ByteArrayTb4b4b4)Tb4b4b4: Te6edf3ChannelSet Tff7b72= Te6edf3ChannelSetTb4b4b4.Te6edf3ADAPTERTb4b4b4.Te6edf3decodeOrNullTb4b4b4(Te6edf3bytesTb4b4b4, Te6edf3LoggerTb4b4b4) Tff7b72?: Te6edf3ChannelSetTb4b4b4(Tb4b4b4)

Tf0883e@ColumnTypeConverter Tff7b72fun Td2a8ffchannelSetToBytesTb4b4b4(Te6edf3valueTb4b4b4: Te6edf3ChannelSetTb4b4b4)Tb4b4b4: Te6edf3ByteArray Tff7b72= Te6edf3ChannelSetTb4b4b4.Te6edf3ADAPTERTb4b4b4.Te6edf3encodeTb4b4b4(Te6edf3valueTb4b4b4)

Tf0883e@ColumnTypeConverter
Tff7b72fun Td2a8fffromStringListTb4b4b4(Te6edf3valueTb4b4b4: Tffa657String?Tb4b4b4)Tb4b4b4: Te6edf3ListTff7b72<Tffa657StringTff7b72>Tff7b72? Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3value Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72null
Tb4b4b4}
Tff7b72return Te6edf3JsonTb4b4b4.Te6edf3decodeFromStringTff7b72<Te6edf3ListTff7b72<Tffa657StringTff7b72>Tff7b72>Tb4b4b4(Te6edf3valueTb4b4b4)
Tb4b4b4}

Tf0883e@ColumnTypeConverter
Tff7b72fun Td2a8fftoStringListTb4b4b4(Te6edf3listTb4b4b4: Te6edf3ListTff7b72<Tffa657StringTff7b72>Tff7b72?Tb4b4b4)Tb4b4b4: Tffa657String? Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3list Tff7b72=Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72null
Tb4b4b4}
Tff7b72return Te6edf3JsonTb4b4b4.Te6edf3encodeToStringTb4b4b4(Te6edf3listTb4b4b4)
Tb4b4b4}

Tf0883e@ColumnTypeConverter Tff7b72fun Td2a8ffbytesToByteStringTb4b4b4(Te6edf3bytesTb4b4b4: Te6edf3ByteArray?Tb4b4b4)Tb4b4b4: Te6edf3ByteString? Tff7b72= Te6edf3bytesTff7b72?.Te6edf3toByteStringTb4b4b4(Tb4b4b4)

Tf0883e@ColumnTypeConverter Tff7b72fun Td2a8ffbyteStringToBytesTb4b4b4(Te6edf3valueTb4b4b4: Te6edf3ByteString?Tb4b4b4)Tb4b4b4: Te6edf3ByteArray? Tff7b72= Te6edf3valueTff7b72?.Te6edf3toByteArrayTb4b4b4(Tb4b4b4)

T8b949e/** Discovery scans capture the radio's pre-scan LoRa config so an interrupted scan can restore it later. */
Tf0883e@ColumnTypeConverter
Tff7b72fun Td2a8ffbytesToLoRaConfigTb4b4b4(Te6edf3bytesTb4b4b4: Te6edf3ByteArray?Tb4b4b4)Tb4b4b4: Te6edf3ConfigTb4b4b4.Te6edf3LoRaConfigTff7b72? Tff7b72=
Te6edf3bytesTff7b72?.Te6edf3let Tb4b4b4{ Te6edf3ConfigTb4b4b4.Te6edf3LoRaConfigTb4b4b4.Te6edf3ADAPTERTb4b4b4.Te6edf3decodeOrNullTb4b4b4(Tffa657itTb4b4b4, Te6edf3LoggerTb4b4b4) Tb4b4b4}

Tf0883e@ColumnTypeConverter
Tff7b72fun Td2a8ffloRaConfigToBytesTb4b4b4(Te6edf3valueTb4b4b4: Te6edf3ConfigTb4b4b4.Te6edf3LoRaConfigTff7b72?Tb4b4b4)Tb4b4b4: Te6edf3ByteArray? Tff7b72= Te6edf3valueTff7b72?.Te6edf3let Tb4b4b4{ Te6edf3ConfigTb4b4b4.Te6edf3LoRaConfigTb4b4b4.Te6edf3ADAPTERTb4b4b4.Te6edf3encodeTb4b4b4(Tffa657itTb4b4b4) Tb4b4b4}

T8b949e/** Discovery scans capture the radio's pre-scan primary channel to restore after a custom-channel target. */
Tf0883e@ColumnTypeConverter
Tff7b72fun Td2a8ffbytesToChannelSettingsTb4b4b4(Te6edf3bytesTb4b4b4: Te6edf3ByteArray?Tb4b4b4)Tb4b4b4: Te6edf3ChannelSettings? Tff7b72=
Te6edf3bytesTff7b72?.Te6edf3let Tb4b4b4{ Te6edf3ChannelSettingsTb4b4b4.Te6edf3ADAPTERTb4b4b4.Te6edf3decodeOrNullTb4b4b4(Tffa657itTb4b4b4, Te6edf3LoggerTb4b4b4) Tb4b4b4}

Tf0883e@ColumnTypeConverter
Tff7b72fun Td2a8ffchannelSettingsToBytesTb4b4b4(Te6edf3valueTb4b4b4: Te6edf3ChannelSettings?Tb4b4b4)Tb4b4b4: Te6edf3ByteArray? Tff7b72= Te6edf3valueTff7b72?.Te6edf3let Tb4b4b4{ Te6edf3ChannelSettingsTb4b4b4.Te6edf3ADAPTERTb4b4b4.Te6edf3encodeTb4b4b4(Tffa657itTb4b4b4) Tb4b4b4}

Tf0883e@ColumnTypeConverter
Tff7b72fun Td2a8ffmessageStatusToIntTb4b4b4(Te6edf3valueTb4b4b4: Te6edf3MessageStatus?Tb4b4b4)Tb4b4b4: Tffa657Int Tff7b72= Te6edf3valueTff7b72?.Te6edf3ordinal Tff7b72?: Te6edf3MessageStatusTb4b4b4.Te6edf3UNKNOWNTb4b4b4.Te6edf3ordinal

Tf0883e@ColumnTypeConverter
Tff7b72fun Td2a8ffintToMessageStatusTb4b4b4(Te6edf3valueTb4b4b4: Tffa657IntTb4b4b4)Tb4b4b4: Te6edf3MessageStatus Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3entriesTb4b4b4.Te6edf3getOrElseTb4b4b4(Te6edf3valueTb4b4b4) Tb4b4b4{ Te6edf3MessageStatusTb4b4b4.Te6edf3UNKNOWN Tb4b4b4}
Tb4b4b4}

Served by rngit 1.5.0 - Generated in 0.27s